-- BP 7.1.6 content: ClassStateMachine syschar: 3 persistence-version: 7.1.6

INSERT INTO SM_ASM
	VALUES ("603cb359-e13f-40cf-91dd-0d3d930ccf0c",
	"851f5906-3fdd-4ecc-87c7-8a2cbbd83de4");
INSERT INTO SM_SM
	VALUES ("603cb359-e13f-40cf-91dd-0d3d930ccf0c",
	'',
	0);
INSERT INTO SM_MOORE
	VALUES ("603cb359-e13f-40cf-91dd-0d3d930ccf0c");
INSERT INTO SM_EVTDI
	VALUES ("bd62b690-82fb-44d1-9f8f-2e1ba7d4bed6",
	"603cb359-e13f-40cf-91dd-0d3d930ccf0c",
	'name',
	'',
	"ba5eda7a-def5-0000-0000-000000000004",
	'',
	"f382c655-8400-4411-ac0b-b01de0870fb0",
	"00000000-0000-0000-0000-000000000000");
INSERT INTO SM_EVTDI
	VALUES ("95a68111-b386-4543-b26c-404c4651a5c9",
	"603cb359-e13f-40cf-91dd-0d3d930ccf0c",
	'symbol',
	'',
	"ba5eda7a-def5-0000-0000-000000000004",
	'',
	"f382c655-8400-4411-ac0b-b01de0870fb0",
	"bd62b690-82fb-44d1-9f8f-2e1ba7d4bed6");
INSERT INTO SM_EVTDI
	VALUES ("36f3e40f-af4a-4bae-8bf3-7eb1582345fc",
	"603cb359-e13f-40cf-91dd-0d3d930ccf0c",
	'type',
	'',
	"ba5eda7a-def5-0000-0000-000000000004",
	'',
	"f382c655-8400-4411-ac0b-b01de0870fb0",
	"95a68111-b386-4543-b26c-404c4651a5c9");
INSERT INTO SM_EVTDI
	VALUES ("a019dd5f-64a9-426f-9db8-2f64461aa64f",
	"603cb359-e13f-40cf-91dd-0d3d930ccf0c",
	'result',
	'',
	"ba5eda7a-def5-0000-0000-000000000004",
	'',
	"f382c655-8400-4411-ac0b-b01de0870fb0",
	"36f3e40f-af4a-4bae-8bf3-7eb1582345fc");
INSERT INTO SM_LEVT
	VALUES ("f382c655-8400-4411-ac0b-b01de0870fb0",
	"603cb359-e13f-40cf-91dd-0d3d930ccf0c",
	"00000000-0000-0000-0000-000000000000");
INSERT INTO SM_SEVT
	VALUES ("f382c655-8400-4411-ac0b-b01de0870fb0",
	"603cb359-e13f-40cf-91dd-0d3d930ccf0c",
	"00000000-0000-0000-0000-000000000000");
INSERT INTO SM_EVT
	VALUES ("f382c655-8400-4411-ac0b-b01de0870fb0",
	"603cb359-e13f-40cf-91dd-0d3d930ccf0c",
	"00000000-0000-0000-0000-000000000000",
	1,
	'create',
	0,
	'',
	'TYOP_A1',
	'');
INSERT INTO SM_STATE
	VALUES ("b11c9684-0f78-4950-a479-0bb7e73eb936",
	"603cb359-e13f-40cf-91dd-0d3d930ccf0c",
	"00000000-0000-0000-0000-000000000000",
	'Creating',
	1,
	0);
INSERT INTO SM_SEME
	VALUES ("b11c9684-0f78-4950-a479-0bb7e73eb936",
	"f382c655-8400-4411-ac0b-b01de0870fb0",
	"603cb359-e13f-40cf-91dd-0d3d930ccf0c",
	"00000000-0000-0000-0000-000000000000");
INSERT INTO SM_NSTXN
	VALUES ("6170198c-9389-4dd4-9422-4c43e38fd98c",
	"603cb359-e13f-40cf-91dd-0d3d930ccf0c",
	"b11c9684-0f78-4950-a479-0bb7e73eb936",
	"f382c655-8400-4411-ac0b-b01de0870fb0",
	"00000000-0000-0000-0000-000000000000");
INSERT INTO SM_TXN
	VALUES ("6170198c-9389-4dd4-9422-4c43e38fd98c",
	"603cb359-e13f-40cf-91dd-0d3d930ccf0c",
	"b11c9684-0f78-4950-a479-0bb7e73eb936",
	"00000000-0000-0000-0000-000000000000");
INSERT INTO SM_MOAH
	VALUES ("ebc08d34-aa00-4bb3-a31c-f7afc48762d5",
	"603cb359-e13f-40cf-91dd-0d3d930ccf0c",
	"b11c9684-0f78-4950-a479-0bb7e73eb936");
INSERT INTO SM_AH
	VALUES ("ebc08d34-aa00-4bb3-a31c-f7afc48762d5",
	"603cb359-e13f-40cf-91dd-0d3d930ccf0c");
INSERT INTO SM_ACT
	VALUES ("ebc08d34-aa00-4bb3-a31c-f7afc48762d5",
	"603cb359-e13f-40cf-91dd-0d3d930ccf0c",
	1,
	'select any result from instances of TYPE where selected.name == rcvd_evt.result;
if (empty result)
  // Wait 10 milliseconds and retry, since type creation is asynchronous. This 
  // code could launch a creation event, but the responsibility lies outside of 
  // this process. This process only has to understand the asynchronous nature 
  // of type creation and acommodate it.
  create event instance recreate of TYOP_A1:create(name:rcvd_evt.name, symbol:rcvd_evt.symbol, type:rcvd_evt.type, result:rcvd_evt.result) to TYOP class;
  bridge retry_timer = TIM::timer_start(microseconds:10000, event_inst:recreate);
else
  select any operator from instances of OPER where (selected.name == rcvd_evt.name) and (selected.symbol == rcvd_evt.symbol);
  if (empty operator)
    create object instance operator of OPER;
    operator.name = rcvd_evt.name;
    operator.symbol = rcvd_evt.symbol;
  end if;
  select any type from instances of TYPE where selected.name == rcvd_evt.type;
  create object instance typed_op of TYOP;
  relate operator to type across R406 using typed_op;
  relate typed_op to result across R415;
  // For assignment operators, make them the required operator if requestor is 
  // a core type (which it probably is).
  if (operator.name == "assignment")
     select one core related by type->CORE[R401];
     if (not empty core)
        relate core to operator across R419;
     end if;
  end if;
end if;
',
	'',
	0);
INSERT INTO SM_TAH
	VALUES ("89166efc-ec59-4c30-a384-82f6ee716996",
	"603cb359-e13f-40cf-91dd-0d3d930ccf0c",
	"6170198c-9389-4dd4-9422-4c43e38fd98c");
INSERT INTO SM_AH
	VALUES ("89166efc-ec59-4c30-a384-82f6ee716996",
	"603cb359-e13f-40cf-91dd-0d3d930ccf0c");
INSERT INTO SM_ACT
	VALUES ("89166efc-ec59-4c30-a384-82f6ee716996",
	"603cb359-e13f-40cf-91dd-0d3d930ccf0c",
	3,
	'',
	'',
	0);
INSERT INTO GD_MD
	VALUES ("8337d4d7-b43f-440b-9586-35022123a8c6",
	10,
	"603cb359-e13f-40cf-91dd-0d3d930ccf0c",
	40,
	0,
	0,
	1,
	1,
	1,
	12,
	1,
	0,
	0,
	0,
	0,
	0,
	'4.1.17',
	'shlaer-mellor-metamodel::metamodel::Shlaer-Mellor Metamodel::Type::Typed Operator::Class State Machine');
INSERT INTO GD_GE
	VALUES ("b5deb0e0-479e-40ae-ab52-71015e7b25e4",
	"8337d4d7-b43f-440b-9586-35022123a8c6",
	"b11c9684-0f78-4950-a479-0bb7e73eb936",
	41,
	0,
	'shlaer-mellor-metamodel::metamodel::Shlaer-Mellor Metamodel::Type::Typed Operator::Class State Machine::Creating');
INSERT INTO GD_SHP
	VALUES ("b5deb0e0-479e-40ae-ab52-71015e7b25e4");
INSERT INTO GD_NCS
	VALUES ("b5deb0e0-479e-40ae-ab52-71015e7b25e4");
INSERT INTO DIM_ND
	VALUES (204.000000,
	144.000000,
	"b5deb0e0-479e-40ae-ab52-71015e7b25e4");
INSERT INTO DIM_GE
	VALUES (4392.000000,
	3072.000000,
	"b5deb0e0-479e-40ae-ab52-71015e7b25e4",
	"00000000-0000-0000-0000-000000000000");
INSERT INTO DIM_ELE
	VALUES ("b5deb0e0-479e-40ae-ab52-71015e7b25e4",
	0,
	"00000000-0000-0000-0000-000000000000");
INSERT INTO DIM_CON
	VALUES ("8ee61a17-0fed-456e-adab-cb29ae1c9458",
	4536.000000,
	3216.000000,
	"b5deb0e0-479e-40ae-ab52-71015e7b25e4");
INSERT INTO DIM_CON
	VALUES ("c0bcb9f5-889d-4880-a8fc-acd37dfdc979",
	4428.000000,
	3216.000000,
	"b5deb0e0-479e-40ae-ab52-71015e7b25e4");
INSERT INTO DIM_CON
	VALUES ("53e0141e-6063-4aac-bf0b-d5c8c180b21c",
	4512.000000,
	3072.000000,
	"b5deb0e0-479e-40ae-ab52-71015e7b25e4");
INSERT INTO DIM_CON
	VALUES ("fa8ff118-2e84-443e-a6d9-64e0c8d342fa",
	4596.000000,
	3132.000000,
	"b5deb0e0-479e-40ae-ab52-71015e7b25e4");
INSERT INTO GD_GE
	VALUES ("0ee072f2-a9e5-4712-a9ef-7c89d7f87b59",
	"8337d4d7-b43f-440b-9586-35022123a8c6",
	"6170198c-9389-4dd4-9422-4c43e38fd98c",
	42,
	0,
	'shlaer-mellor-metamodel::metamodel::Shlaer-Mellor Metamodel::Type::Typed Operator::Class State Machine::Creating::TYOP_A1: create');
INSERT INTO GD_CON
	VALUES ("0ee072f2-a9e5-4712-a9ef-7c89d7f87b59",
	"00000000-0000-0000-0000-000000000000");
INSERT INTO GD_CTXT
	VALUES ("4016bafc-9082-4597-bb8e-203c92d8440d",
	"0ee072f2-a9e5-4712-a9ef-7c89d7f87b59",
	0,
	0.000000,
	0.000000);
INSERT INTO DIM_ND
	VALUES (0.000000,
	0.000000,
	"4016bafc-9082-4597-bb8e-203c92d8440d");
INSERT INTO DIM_GE
	VALUES (0.000000,
	0.000000,
	"4016bafc-9082-4597-bb8e-203c92d8440d",
	"00000000-0000-0000-0000-000000000000");
INSERT INTO DIM_ELE
	VALUES ("4016bafc-9082-4597-bb8e-203c92d8440d",
	0,
	"00000000-0000-0000-0000-000000000000");
INSERT INTO GD_CTXT
	VALUES ("affc50d2-d46c-4662-abe3-b51f85c65612",
	"0ee072f2-a9e5-4712-a9ef-7c89d7f87b59",
	2,
	0.000000,
	0.000000);
INSERT INTO DIM_ND
	VALUES (0.000000,
	0.000000,
	"affc50d2-d46c-4662-abe3-b51f85c65612");
INSERT INTO DIM_GE
	VALUES (4510.000000,
	2982.000000,
	"affc50d2-d46c-4662-abe3-b51f85c65612",
	"00000000-0000-0000-0000-000000000000");
INSERT INTO DIM_ELE
	VALUES ("affc50d2-d46c-4662-abe3-b51f85c65612",
	0,
	"00000000-0000-0000-0000-000000000000");
INSERT INTO GD_CTXT
	VALUES ("bfb8f703-bab1-47ce-bc7c-59126ab4fca6",
	"0ee072f2-a9e5-4712-a9ef-7c89d7f87b59",
	1,
	0.000000,
	0.000000);
INSERT INTO DIM_ND
	VALUES (0.000000,
	0.000000,
	"bfb8f703-bab1-47ce-bc7c-59126ab4fca6");
INSERT INTO DIM_GE
	VALUES (0.000000,
	0.000000,
	"bfb8f703-bab1-47ce-bc7c-59126ab4fca6",
	"00000000-0000-0000-0000-000000000000");
INSERT INTO DIM_ELE
	VALUES ("bfb8f703-bab1-47ce-bc7c-59126ab4fca6",
	0,
	"00000000-0000-0000-0000-000000000000");
INSERT INTO GD_LS
	VALUES ("7310eb79-12d5-4bcd-a962-d08f0d64f74e",
	"0ee072f2-a9e5-4712-a9ef-7c89d7f87b59",
	"00000000-0000-0000-0000-000000000000",
	"49eefd3a-c2eb-4eca-b6fe-4ec4e20d1800",
	"16f4fa2e-e681-4777-be0d-c19ab26eceb5");
INSERT INTO GD_LS
	VALUES ("70279ff3-fb5d-402a-bbc8-168bd35a80e0",
	"0ee072f2-a9e5-4712-a9ef-7c89d7f87b59",
	"7310eb79-12d5-4bcd-a962-d08f0d64f74e",
	"16f4fa2e-e681-4777-be0d-c19ab26eceb5",
	"a3185a78-846f-49c8-a715-044a56fc80f7");
INSERT INTO GD_LS
	VALUES ("85b99d7b-57ac-4d70-a812-45d7e03117c2",
	"0ee072f2-a9e5-4712-a9ef-7c89d7f87b59",
	"70279ff3-fb5d-402a-bbc8-168bd35a80e0",
	"a3185a78-846f-49c8-a715-044a56fc80f7",
	"3a1b9ea2-c0e9-4e8c-8898-9d394a9e0329");
INSERT INTO GD_LS
	VALUES ("e5a80677-7902-4342-9efc-df7f78c5cfd5",
	"0ee072f2-a9e5-4712-a9ef-7c89d7f87b59",
	"85b99d7b-57ac-4d70-a812-45d7e03117c2",
	"3a1b9ea2-c0e9-4e8c-8898-9d394a9e0329",
	"5a88f9ea-447e-46bf-9562-25dec6479af2");
INSERT INTO DIM_WAY
	VALUES ("49eefd3a-c2eb-4eca-b6fe-4ec4e20d1800",
	4512.000000,
	3072.000000,
	"0ee072f2-a9e5-4712-a9ef-7c89d7f87b59",
	"00000000-0000-0000-0000-000000000000",
	"00000000-0000-0000-0000-000000000000");
INSERT INTO DIM_WAY
	VALUES ("5a88f9ea-447e-46bf-9562-25dec6479af2",
	4596.000000,
	3132.000000,
	"0ee072f2-a9e5-4712-a9ef-7c89d7f87b59",
	"00000000-0000-0000-0000-000000000000",
	"49eefd3a-c2eb-4eca-b6fe-4ec4e20d1800");
INSERT INTO DIM_WAY
	VALUES ("16f4fa2e-e681-4777-be0d-c19ab26eceb5",
	4512.000000,
	3022.000000,
	"0ee072f2-a9e5-4712-a9ef-7c89d7f87b59",
	"00000000-0000-0000-0000-000000000000",
	"00000000-0000-0000-0000-000000000000");
INSERT INTO DIM_WAY
	VALUES ("a3185a78-846f-49c8-a715-044a56fc80f7",
	4645.000000,
	3022.000000,
	"0ee072f2-a9e5-4712-a9ef-7c89d7f87b59",
	"00000000-0000-0000-0000-000000000000",
	"00000000-0000-0000-0000-000000000000");
INSERT INTO DIM_WAY
	VALUES ("3a1b9ea2-c0e9-4e8c-8898-9d394a9e0329",
	4645.000000,
	3132.000000,
	"0ee072f2-a9e5-4712-a9ef-7c89d7f87b59",
	"00000000-0000-0000-0000-000000000000",
	"00000000-0000-0000-0000-000000000000");
INSERT INTO DIM_GE
	VALUES (0.000000,
	0.000000,
	"0ee072f2-a9e5-4712-a9ef-7c89d7f87b59",
	"00000000-0000-0000-0000-000000000000");
INSERT INTO DIM_ELE
	VALUES ("0ee072f2-a9e5-4712-a9ef-7c89d7f87b59",
	0,
	"00000000-0000-0000-0000-000000000000");
INSERT INTO DIM_ED
	VALUES ("53e0141e-6063-4aac-bf0b-d5c8c180b21c",
	"fa8ff118-2e84-443e-a6d9-64e0c8d342fa",
	"0ee072f2-a9e5-4712-a9ef-7c89d7f87b59");
INSERT INTO DIM_DIA
	VALUES ("8337d4d7-b43f-440b-9586-35022123a8c6",
	'',
	1.000000,
	0.000000,
	0.000000,
	"00000000-0000-0000-0000-000000000000");
INSERT INTO O_OBJ_PROXY
	VALUES ("851f5906-3fdd-4ecc-87c7-8a2cbbd83de4",
	'Typed Operator',
	416,
	'TYOP',
	'"An Operator is polymorphic in that it may be applied to multiple Types." 
[miUML]
    The Typed Operator is the mapping of a Type to an Operator. The context of 
the result of the operation is the same as the context of the Typed Operator 
chosen. This implies precedence must be built into the process model, if auto-
matic type conversion is desired, because the result of e.g., 5 + "5" is 
different if ''+'' is a string operator vs a numeric operator. (This also 
requires that the corresponding conversion operator is defined.)',
	"00000000-0000-0000-0000-000000000000",
	'../Typed Operator.xtuml');
